source/midltod.d(54,62): Error: field `BlockData.Import` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(55,62): Error: field `BlockData.CppQuote` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(56,62): Error: field `BlockData.Constant` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(57,62): Error: field `BlockData.Enum` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(58,62): Error: field `BlockData.Aggregate` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(59,62): Error: field `BlockData.Interface` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(60,62): Error: field `BlockData.Function` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(61,62): Error: field `BlockData.Alias` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(241,3): Error: field `BlockData.Import` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(273,3): Error: field `BlockData.CppQuote` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(312,3): Error: field `BlockData.Constant` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(350,18): Error: cannot take address of `ref return` of `back()` in `@safe` function `ParseEnum` source/midltod.d(368,3): Error: field `BlockData.Enum` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(415,33): Error: `@safe` function `midltod.ParseDeclaration` cannot call `@system` function `std.stdio.File.writeln!(Take!(Repeat!char), string, Declaration).writeln` /opt/dmd-safe/dmd/generated/linux/release/64/../../../../../phobos/std/stdio.d(1548,10): `std.stdio.File.writeln!(Take!(Repeat!char), string, Declaration).writeln` is declared here source/midltod.d(504,31): Error: `@safe` function `midltod.ParseAggregate` cannot call `@system` function `std.stdio.File.writeln!(Take!(Repeat!char), string, Declaration).writeln` /opt/dmd-safe/dmd/generated/linux/release/64/../../../../../phobos/std/stdio.d(1548,10): `std.stdio.File.writeln!(Take!(Repeat!char), string, Declaration).writeln` is declared here source/midltod.d(514,3): Error: field `BlockData.Aggregate` cannot access pointers in `@safe` code that overlap other fields source/midltod.d(528,83): Error: cannot take address of local `Delimiter` in `@safe` function `ParseNestedString` source/midltod.d(610,87): Error: cannot take address of local `Delimiter` in `@safe` function `TryParseAttributes` source/midltod.d(649,93): Error: cannot take address of local `Delimiter` in `@safe` function `ParseInterface` source/midltod.d(662,71): Error: cannot take address of local `Delimiter` in `@safe` function `ParseInterface` /opt/dmd-safe/dmd/dmd-safe failed with exit code 1.